home *** CD-ROM | disk | FTP | other *** search
-
- function DM2() {}
-
- DM2.pitch2deck = { "0" : 1, // Left Wheel
- "1" : 2 // Right Wheel
- };
-
- DM2.button2deck = { "1" : 1,
- "1" : 2,
- "30" : 1, // Left filterHighKill
- "29" : 1, // Left filterMidKill
- "28" : 1, // Left filterlowKill
- "16" : 2, // Right filterHighKill
- "17" : 2, // Right filterMidKill
- "18" : 2, // Right filterLowKill
- "23" : 2, // Right flanger
- "31" : 1, // Left flanger
- "19" : 2, // Right cue_default
- "27" : 1, // Left cue_default
- "22" : 2, // Right rate_perm_up_small
- "24" : 1, // Left rate_perm_up_small
- "20" : 2, // Right rate_perm_down_small
- "26" : 1 // Left rate_perm_down_small
- };
-
- DM2.button2mixxx = { "30" : "filterHighKill", // Left
- "29" : "filterMidKill", // Left
- "28" : "filterLowKill", // Left
- "16" : "filterHighKill", // Right
- "17" : "filterMidKill", // Right
- "18" : "filterLowKill", // Right
- "23" : "flanger", // Right
- "31" : "flanger", // Left
- "19" : "cue_default", // Right
- "27" : "cue_default", // Left
- "22" : "rate_perm_up_small", // Right
- "24" : "rate_perm_up_small", // Left
- "20" : "rate_perm_down_small", // Right
- "26" : "rate_perm_down_small" // Left
- };
-
- DM2.cc2deck = { "3" : 1, // Left filterHighKill
- "4" : 2, // Right filterHighKill
- "5" : 1, // Left filterMidKill
- "6" : 2, // Right filterMidKill
- "7" : 1, // Left filterLowKill
- "8" : 2, // Right filterLowKill
- "9" : 1, // Left gain
- "10" : 2, // Right gain
- "11" : 1, // Left volume
- "12" : 2, // Right volume
- "13" : 1, // left rate
- "14" : 2 // Right rate
- };
-
- DM2.cc2mixxx = { "3" : "filterHigh", // Left
- "4" : "filterHigh", // Right
- "5" : "filterMid", // Left
- "6" : "filterMid", // Right
- "7" : "filterLow", // Left
- "8" : "filterLow", // Right
- "9" : "pregain", // Left
- "10" : "pregain", // Right
- "11" : "volume", // Left
- "12" : "volume", // Right
- "13" : "rate", // left
- "14" : "rate" // Right
- };
-
-
- DM2.acc = 0;
- DM2.lastacc = 0;
- DM2.playlist_channel = -1;
- DM2.filter_active = 0;
-
- DM2.init = function (id) { // called when the MIDI device is opened & set up
- print ("======DM2: initialized. " + id );
- }
-
- DM2.shutdown = function () { // called when the MIDI device is closed
- print ("======DM2: shutdown...");
- }
-
- DM2.wheel = function (channel, control, value, status ) {
- // 14bit values
- var newValue = ( value << 7 ) | control;
- if( newValue >= 8192 )
- newValue = newValue - 16384;
- // print( "14bit: " + newValue );
-
- // print( "setting wheel("+channel +"): " + "[Channel" + DM2.pitch2deck[channel] + "]" + " to " + newValue/512.0 );
- engine.setValue( "[Channel" + DM2.pitch2deck[channel] + "]", "jog", newValue/512.0 );
-
- // if( channel == 0 ) {
- // if( engine.getValue("[Channel2]","VuMeter") > 0.6 )
- // print( "*" );
- // else
- // print( "" );
- // print ("playpos: " + engine.getValue("[Channel2]","VuMeter"));
- // }
- /* print( "=====DM2:" );
- print( " - channel: " + channel );
- print( " - control: " + control );
- print( " - value: " + value );
- print( " - status: " + status );
- print( "setting jog: " + newValue );*/
- }
-
- DM2.playlist = function (channel, control, value, status) {
- // 7bit values
- var newValue=value;
- if( value >= 64 )
- newValue = newValue - 128;
-
- DM2.acc += newValue;
-
- if( DM2.acc > DM2.lastacc + 20 )
- {
- DM2.playlist_channel = channel;
- engine.setValue( "[Playlist]", "SelectNextTrack", 1 );
- DM2.lastacc = DM2.acc;
- }
- else if( DM2.acc < DM2.lastacc - 20 )
- {
- DM2.playlist_channel = channel;
- engine.setValue( "[Playlist]", "SelectPrevTrack", 1 );
- DM2.lastacc = DM2.acc;
- }
- }
-
- DM2.middle = function (channel, control, value, status) {
- if( DM2.playlist_channel != -1 )
- {
- engine.setValue( "[Playlist]", "LoadSelectedIntoFirstStopped", 1 );
- // engine.setValue( "[Channel" + DM2.playlist_channel + "]", "LoadSelectedTrack", 1 );
- DM2.playlist_channel = -1;
- }
- }
-
- DM2.filter = function (channel, control, value, status) {
- var deck = DM2.cc2deck[control];
- // 7bit values
- if( value >= 64 )
- value = value - 128;
-
- var f = engine.getValue( "[Channel" + deck + "]", DM2.cc2mixxx[control] );
- f += value / 256;
- if( f > 4.0 )
- f = 4.0;
- else if( f < 0.0 )
- f = 0.0;
-
- // print( "settiing [Channel" + deck + "] " + DM2.cc2mixxx[control] + " to " + f );
- engine.setValue( "[Channel" + deck + "]", DM2.cc2mixxx[control], f );
- DM2.filter_active = 1;
- }
-
- DM2.volume = function (channel, control, value, status) {
- var deck = DM2.cc2deck[control];
- // 7bit values
- if( value >= 64 )
- value = value - 128;
-
- var f = engine.getValue( "[Channel" + deck + "]", DM2.cc2mixxx[control] );
- f += value / 512;
- if( f > 1.0 )
- f = 1.0;
- else if( f < 0.0 )
- f = 0.0;
-
- engine.setValue( "[Channel" + deck + "]", DM2.cc2mixxx[control], f );
- DM2.filter_active = 1;
- }
-
- DM2.rate = function (channel, control, value, status) {
- var deck = DM2.cc2deck[control];
- // 7bit values
- if( value >= 64 )
- value = value - 128;
-
- var f = engine.getValue( "[Channel" + deck + "]", DM2.cc2mixxx[control] );
- f += value / 8192;
- if( f > 1.0 )
- f = 1.0;
- else if( f < -1.0 )
- f = -1.0;
-
- engine.setValue( "[Channel" + deck + "]", DM2.cc2mixxx[control], f );
- DM2.filter_active = 1;
- }
-
- DM2.filterKill = function( channel, control, value, status )
- {
- print( "control "+control );
- if( DM2.filter_active )
- DM2.filter_active = 0;
- else
- {
- print( "setting: " + DM2.button2mixxx[control] + " = " + ( ~ engine.getValue( "[Channel" + DM2.button2deck[control] + "]",
- DM2.button2mixxx[control] ) & 1 ) );
- engine.setValue( "[Channel" + DM2.button2deck[control] + "]",
- DM2.button2mixxx[control],
- ( ~ engine.getValue( "[Channel" + DM2.button2deck[control] + "]",
- DM2.button2mixxx[control] ) & 1 ) );
- }
- }
-
-
- // TODO: does not work
- DM2.trigger = function( channel, control, value, status )
- {
- print( "trigger "+control );
- if( DM2.filter_active )
- DM2.filter_active = 0;
- else
- {
- var f = engine.getValue( "[Channel" + DM2.button2deck[control] + "]", DM2.button2mixxx[control] );
- engine.setValue( "[Channel" + DM2.button2deck[control] + "]",
- DM2.button2mixxx[control], 1 );
- var i;
- for( i = 0; i < 10000; i++ ) ;
- engine.setValue( "[Channel" + DM2.button2deck[control] + "]",
- DM2.button2mixxx[control], 0 );
- }
- }
-